In complex information technology environments, it is often necessary to integrate heterogeneous message queuing systems that service a myriad of business applications. For instance, a first application may have a message queuing system that needs to communicate messages with a message queuing system of a second application. In the case where the two messaging system utilize heterogeneous formats or protocols, a bridge is required to ensure that the messages are reliably delivered, properly processed, sequenced, etc.
One of the challenges of implementing a bridge is handling failover situations, in which the bridge temporarily fails or one or more endpoints in a message queuing system fail. In such situations, it is imperative that the failure can be addressed in such a manner that preserves the integrity of the message flows and messages themselves, overall quality of service the system provides, sequencing of the messages associated with one or more flows, etc.
Current approaches involve the use of shared storage and/or replication software that typically requires changes at the server level of each message queuing system. A major drawback to this solution is the high levels of both upfront and ongoing administrative costs to ensure that such changes, which represent other possible points of failure, are configured, monitored and maintained properly. A second known solution entails the use of an “exclusive queue” configuration within the message queuing systems. This approach, while plausible in some environments, typically imposes higher degrees of overhead and inefficiencies that result in lower levels of performance.